(cl:in-package #:sicl-new-boot)

(defun boot ()
  (unless (null (find-package '#:parcl))
    (rename-package '#:parcl '#:sicl-new-boot-parcl-extrinsic))
  (setf (symbol-value
         (find-symbol "*CLIENT*" '#:sicl-new-boot-parcl-extrinsic))
        (make-instance 'client))
  (let* ((boot (make-instance 'boot))
         (*boot* boot)
         (client (make-instance 'client)))
    (create-common-lisp-package client)
    (loop for name in '("COMMON-LISP-USER" "CL-USER" "KEYWORD")
          do (setf (gethash name (packages boot))
                   (find-package name)))
    (sicl-new-boot-phase-1:boot boot)
    (sicl-new-boot-phase-2:boot boot)
    (sicl-new-boot-phase-3:boot boot)
    (sicl-new-boot-phase-4:boot boot)
    (sicl-new-boot-phase-5:boot boot)
    (sicl-new-boot-phase-6:boot boot)
    (defparameter *b* boot)))

(defvar *c4*)
(defvar *w4*)
(defvar *e4*)
